//
//  StatusListViewModel.swift
//  SinaWeibo
//
//  Created by Tony-ztb on 15/12/22.
//  Copyright © 2015年 Tony-ztb. All rights reserved.
//

import UIKit
import SVProgressHUD

class StatusListViewModel: NSObject {

    // 首页网络请求
    class func loadHomePageData(since_id: Int64, max_id: Int64, finished: (statuses:[Status]?) -> ()) {
        // 实现网络请求
        
        let urlString = "2/statuses/home_timeline.json"
        
        guard let token = UserAccountViewModel().token else {
            // 如果token为空
            SVProgressHUD.showInfoWithStatus("请重新登陆")
            return
        }
        var parameters = ["access_token" : token]
        
        if since_id > 0 {
            parameters["since_id"] = "\(since_id)"
        }
        
        if max_id > 0 { // max_id - 1   防止上来刷新出来的数据 重复
            parameters["max_id"] = "\(max_id - 1)"
        }
        
        NetworkTools.sharedTools.requestJSONDict(.GET, urlString: urlString, parameters: parameters) { (dict, error) -> () in
            if error != nil {
                // 请求失败
                SVProgressHUD.showInfoWithStatus("您的网络出错,请稍后再试")
                // 执行失败的回调
                finished(statuses: nil)
                return
            }
            
            // 请求成功
            // 通过键值的方式,获取statuses对应的数组
            if let array = dict!["statuses"] as? [[String : AnyObject]] {
                // 定义一个数组
                var list = [Status]()
                // 遍历数组中所有的字典,做字典转模型
                for item in array {
                    let s = Status(dict: item)
                    list.append(s)
                }
                // 请求成功的回调
                finished(statuses: list)
            }
            
        }
    }
    

}
